<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		<ol>
			<li>a</li>
			<li>b</li>
			<li>c</li>
			<li>c</li>
			<li>c</li>
			<li>b</li>
		</ol>
		<ol>
			<li>
				<h3>为什么要使用Div+CSS布局</h3>
				<p>
					Div是标签是无语义的，而且是推荐的布局标签，CSS用于给HTML元素添加样式，
					让整个页面更加的协调、美观，所以结合Div+CSS来布局。
				</p>
				<p style="color: brown;">
					传统布局方式:table，现代布局方式:div+css <br />
					1、代码相对少，页面浏览速度更快，减少带宽成本; <br />

					3、对内容的控制更简单、更灵活,并且精准。 <br />

					4、结构清晰，有助于搜索引擎的抓取，对seo有好处。 <br />
					
					5、表现(HTML) 和 样式(CSS)分离，便于阅读和修改，也复合W3C的标准。
				</p>
			</li>
			<li>
				<h3>常见的浏览器内核有哪些</h3>
				<p style="color: brown;">
					微软IE浏览器内核--Trident内核；微软新版浏览器edge内核--edge <br />
					火狐Firefox浏览器--Gecko内核 <br />
					谷歌Chrome浏览器--以前版本是Webkit内核，现在版本是Blink内核 <br />
					Safari浏览器--Webkit内核 <br />
					Opera浏览器--最开始是Presto内核，后来是Webkit内核，现在是Blink内核 <br />
				</p>
			</li>
			<li>
				<h3>position的值relative和absolute的定位原点是什么?</h3>
				<p>
					relative定位原点是元素在正常文档流时的位置；<br />
					absolute定位原点是它的设置了非position: static的父元素或者祖父元素，就近原则
				</p>
			</li>
			<li>
				<h3>在网页中的应该使用奇数还是偶数的字体？为什么？</h3>
				<p style="color: brown;">
					使用偶数字体。<br />
					1.UI设计师多实用偶数字体，与其工具(设计软件)有关，例如ps；<br />
					2.兼容低版本的浏览器和IE6，它们对奇数字体不友好，会默认转变成偶数字体。<br />
					3.流行的浏览器，诸如谷歌，对于对于奇数字体渲染出来的效果不好。<br />
					4.偶数号字体与设计中的其它部分更容易构成比例关系，奇数容易出现小数点。
					5.Windows 自带的点阵宋体(中易宋体)从 Vista 开始只提供 12、14、16 px 这三个大小的点阵,
					而 13、15、17 px 时用的是小一号的点阵(即每个字占的空间大了 1 px,但点阵没变),于是略显稀疏
				</p>
			</li>
			<li>
				<h3>什么是window对象?什么是document对象?</h3>
				<p>
					window对象是浏览器特有的一个对象，用于表示全局对象，它里面有许多的全局属性和全局方法。
					<span style="color: red;">window对象代表浏览器中一个打开的窗口(标签页)。它是一个顶层对象，
					而不是另一个对象的属性</span>。你脚本上写在函数体外的变量和方法都被存放在window对象中；<br />
					document对象是文档对象，指整个HTML页面，包含html及其子元素，document里面也有许多的
					属性和方法提供开发人员使用。
				</p>
			</li>
			<li>
				<h3>null和undefined的区别?</h3>
				<p>
					null通常需要开发人员手动设置给变量，而且它表示该变量不再使用，等待被浏览器回收；<br />
					undefined通常是系统在开发人员声明变量而并未赋值的时候设置的值，表示该变量未声明、未定义。
				</p>
			</li>
			<li>
				<h3>js的typeof返回哪些数据类型</h3>
				<p>
					返回 Number(数值)、String(字符串)、Boolean(布尔)、undefined、Object(对象)
				</p>
			</li>
			<li>
				<h3>线程与进程的区别</h3>
				<p>
					进程是系统分配给应用软件的，而线程则是由进程分配的，同一个进程内的线程共享一个进程资源，
					并且可以相互通信，而进程之间的通信需要额外的手段(cpu资源的消耗)。
				</p>
				<p style="color: brown;">
					进程: 是资源（CPU、内存等）分配的基本单位。它是程序执行时的一个实例。
					程序运行时系统就会创建一个进程，并为它分配资源，然后把该进程放入进程就绪队列，进程调度器选中它的时候就会为它分配CPU时间，程序开始真正运行。<br />
					
					线程: 是程序执行时的最小单位，它是进程的一个执行流，是CPU调度和执行的基本单位。
					一个进程可以由很多个线程组成，线程间共享进程的所有资源，每个线程有自己的堆栈和局部变量。
					线程由CPU独立调度执行，在多CPU环境下就允许多个线程同时运行。同样多线程也可以实现并发操作，每个请求分配一个线程来处理。 <br />
					
					区别: <br />
					进程是资源分配的最小单位，线程是程序执行的最小单位。 <br />
					进程有自己的独立地址空间，每启动一个进程，系统就会为它分配地址空间，建立数据表来维护代码段、堆栈段和数据段，这种操作非常昂贵。
					而线程是共享进程中的数据的，使用相同的地址空间，因此CPU切换一个线程的花费远比进程要小很多，同时创建一个线程的开销也比进程要小很多。<br />
					线程之间的通信更方便，同一进程下的线程共享全局变量、静态变量等数据，而进程之间的通信需要以通信的方式（IPC)进行。不过如何处理好同步与互斥是编写多线程程序的难点。<br />
					但是多进程程序更健壮，多线程程序只要有一个线程死掉，整个进程也死掉了，而一个进程死掉并不会对另外一个进程造成影响，因为进程有自己独立的地址空间。
				
				</p>
			</li>
			<li>
				<h3>事件委托是什么？</h3>
				<p>
					事件委托，又别称事件代理，即是在父元素设置监听事件，其子元素触发该事件也会被监听得到，依赖事件冒泡，
					事件委托的好处是减少代码量和遍历DOM树的次数，从而节省性能。
				</p>
			</li>
		</ol>
	</body>
</html>
